uint32_t lhdfs_read(lhdfs_ctrl* ctrl, char * read_buf,size_t read_len,
off_t pos){
	int fd;
	struct lhdfs_inode inode;
	inode = ctrl->inode;
	if((fd = open(ctrl->inode_fname[0],O_RDONLY)) == NULL){
		prinf("file open error!\n");
		return -1;
	}
	//check for cross-border
	if(read_len + pos > ctrl-> lfs_sb.lfs_size){
		printf("read cross-border\n");
		return -1;

	size_t real_read_buf_len = ((read_len -1)/8196 + 1 + 1)*8196;
	size_t real_read_buf = (char *)malloc(real_read_buf_len);
	read_from_log(ctrl,real_read_buf,pos/8196,pos+read_len/8196);
	memcpy(read_buf,real_read_buf+pos%8196,read_len);
	return read_len;
}
